package com.whut.controller;

import com.whut.mapper.NewmeasuresystemMapper;
import com.whut.model.Newmeasureresulttype;
import com.whut.model.Newmeasuresystem;
import com.whut.service.NewMeasureService;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author： wenyihan
 * @description：新实测实量模块
 * @date： 15:56 2020/12/22
 */
@Controller
@RequestMapping("/newMeasure")
@Scope("prototype")
public class NewMeasureController {
    @Resource
    private NewMeasureService newMeasureService;

    /**
     * @author： wenyihan
     * @description：前6级体系录入[preNum=0代表第一级]
     * @date： 16:32 2020/12/22
     * @param： [parameterName, preNum, nodeDepth]
     * @return： java.lang.String
    */
    @ResponseBody
    @PostMapping("/insertMeasureSystem")
    public Object insertMeasureSystem(String parameterName, Integer preNum, Integer nodeDepth){
        return newMeasureService.insertMeasureSystem(parameterName, preNum, nodeDepth);
    }

    /**
     * 将含有第六级的数据存放到在这个result这张表里面
     * @param parameterName
     * @param preNum
     * @param nodeDepth
     * @return
     */
    @ResponseBody
    @PostMapping("/insertMeasureResultOnSix")
    public Object insertMeasureResultOnSix(String parameterName, Integer preNum, Integer nodeDepth){
        return newMeasureService.insertMeasureResultOnSix(parameterName, preNum, nodeDepth);
    }

    /**
     * @author： wenyihan
     * @description：前6级体系录入
     * @date： 19:40 2020/12/22
     * @param： [mKey, parameterName]
     * @return： java.lang.String
    */
    @ResponseBody
    @PostMapping("/updateMeasureSystem")
    public Object updateMeasureSystem(Integer mKey, String parameterName){
        return newMeasureService.updateMeasureSystem(mKey, parameterName);
    }

    /**
     * @author： wenyihan
     * @description：前6级体系废除
     * @date： 19:50 2020/12/22
     * @param： [mKey]
     * @return： java.lang.String
    */
    @ResponseBody
    @PostMapping("/disuseMeasureSystem")
    public Object disuseMeasureSystem(Integer mKey){
        return newMeasureService.disuseMeasureSystem(mKey);
    }

    /**
     * @author： wenyihan
     * @description：前6级体系获取
     * @date： 19:56 2020/12/22
     * @param： [nodeDepth, preNum]
     * @return： java.util.List<com.whut.model.Newmeasuresystem>
    */
    @ResponseBody
    @PostMapping("/getMeasureSystemByNodeDepth")
    public List<Newmeasuresystem> getMeasureSystemByNodeDepth(Integer nodeDepth, Integer preNum){
        return newMeasureService.getMeasureSystemByNodeDepth(nodeDepth, preNum);
    }

    /**
     * @author： wenyihan
     * @description：体系最后一级插入
     * @date： 9:24 2020/12/23
     * @param： [parameterName, preNum, rangeName, rangeMath, checkArea, checkPoints, measurePoint, burstValue, algorithm, classify]
     * @return： java.lang.String
    */
    @ResponseBody
    @PostMapping("/insertMeasureResult")
    public Object insertMeasureResult(Newmeasureresulttype newmeasureresulttype){
        return newMeasureService.insertMeasureResult(newmeasureresulttype);
    }

    /**
     * @author： wenyihan
     * @description：体系最后一级更新
     * @date： 9:52 2020/12/23
     * @param： [mKey, parameterName, rangeName, rangeMath, checkArea, checkPoints, measurePoint, burstValue, algorithm, classify]
     * @return： java.lang.String
    */
    @ResponseBody
    @PostMapping("/updateMeasureResult")
    public Object updateMeasureResult(Newmeasureresulttype newmeasureresulttype){
        return newMeasureService.updateMeasureResult(newmeasureresulttype);
    }

    /**
     * @author： wenyihan
     * @description：废弃体系最后一级项目
     * @date： 9:59 2020/12/23
     * @param： [mKey]
     * @return： java.lang.String
    */
    @ResponseBody
    @PostMapping("/disuseMeasureResult")
    public Object disuseMeasureResult(Integer mKey){
        return newMeasureService.disuseMeasureResult(mKey);
    }

    /**
     * @author： wenyihan
     * @description：获取最后一级信息
     * @date： 10:02 2020/12/23
     * @param： [preNum]
     * @return： java.util.List<com.whut.model.Newmeasureresulttype>
    */
    @ResponseBody
    @PostMapping("/getMeasureResultInfo")
    public List<Newmeasureresulttype> getMeasureResultInfo(Integer preNum){
        return newMeasureService.getMeasureResultInfo(preNum);

    }

    @ResponseBody
    @PostMapping("/getFatherPreNum")
    public Integer getFatherPreNum(Integer preNum){
        return newMeasureService.getFatherPreNum(preNum).getPreNum();
    }


    /**
     * 如果有第六级，那么操作的时候会在这个地方进行另外的一个表里面开始查找
     * @param preNum
     * @return
     */
    @ResponseBody
    @PostMapping("/getFatherPreNumOnSix")
    public Integer getFatherPreNumOnSix(Integer preNum){
        return newMeasureService.getFatherPreNumOnSix(preNum).getPreNum();
    }




}
